package com.book.common.api.impl;

import com.book.common.api.helper.LanguageHelper;
import com.book.common.result.Failed;
import com.book.common.result.PageInfo;
import com.book.common.result.RestResponse;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * Description：
 *
 * @Author： leo.xiong
 * @CreateDate： 2020/04/23 14:00
 * @Email： leo.xiong@suyun360.com
 * Version：1.0
 */
@Slf4j
public abstract class BaseHystrixImpl<D, V> {
    /**
     * 查询方法
     *
     * @param id
     * @return
     */
    public RestResponse<V> get(String id) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.get" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 获取List
     *
     * @param d
     * @return
     */
    public RestResponse<List<V>> list(D d) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.list" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 获取分页数据信息
     *
     * @param d
     * @return
     */
    public RestResponse<PageInfo<V>> pageList(D d) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.pageList" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 保存数据
     *
     * @param d
     * @return
     */
    public RestResponse<String> save(D d) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.save" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 修改数据
     *
     * @param d
     * @return
     */
    public RestResponse<String> update(D d) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.update" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 删除失败
     *
     * @param id
     * @return
     */
    public RestResponse<String> delete(String id) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.delete" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 导出模板
     *
     * @return
     */
    public RestResponse<String> exportTemplate() {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.exportTemplate" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 导出excle失败
     *
     * @param d
     * @return
     */
    public RestResponse<String> exportExcel(D d) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.exportExcel" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }

    /**
     * 导入失败
     *
     * @param filePath
     * @return
     */
    public RestResponse<String> importExcel(String filePath) {
        return new Failed("BOOK:COMMON:10018", "BaseHystrixImpl.importExcel" + LanguageHelper.getValue("BOOK:COMMON:10018"));
    }
}
